// pages/userPersonal/userPersonal.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    nameIsTrue: true, //姓名是否显示错误项
    phoneIsTrue: true, //电话是否显示错误项
    mailisTrue: true, //邮箱是否显示错误项
    userName: '', //修改的用户名

    sexItem: [{
        name: '男',
        value: '1',

      },
      {
        name: '女',
        value: '2',
      },
    ],
    nowSexValue: 0, //当前选中的性别
    userPhone: NaN, //用户电话
    userMail: '', //用户邮箱

  },
  changeChecked(e) { //改变性别事件
    // console.log(e);
    this.setData({
      nowSexValue: e.currentTarget.dataset.se
    })
    console.log(this.data.nowSexValue)
  },
  changeName(e) { //改变用户姓名事件
    console.log(e)
    this.setData({
      userName: e.detail.value
    })
  },
  changePhone(e) { //改变用户电话事件
    console.log(e)
    this.setData({
      userPhone: e.detail.value
    })
  },
  changeMail(e) { //改变用户邮箱事件
    console.log(e)
    this.setData({
      userMail: e.detail.value
    })
  },
  changeBlur(e) { //失去焦点事件（需要验证）
    console.log(e.currentTarget.dataset.type)
    let blurType = e.currentTarget.dataset.type //当前失去焦点的input类型
    // let that = this

    if (blurType == 'name') { //姓名项
      if (/^[\u4E00-\u9FA5A-Za-z0-9]{2,20}/.test(this.data.userName)) {
        console.log('校验成功')
        this.setData({
          nameIsTrue: true
        })
      } else {
        console.log('校验失败')
        this.setData({
          nameIsTrue: false
        })
      }



    } else if (blurType == 'phone') { //电话项
      if (/^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\d{8}$/.test(this.data.userPhone) || /^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/.test(this.data.phone)) {
        // console.log('校验成功')
        this.setData({
          phoneIsTrue: true
        })
      } else {
        // console.log('校验失败')
        this.setData({
          phoneIsTrue: false
        })
      }
    } else if (blurType == 'mail') { //邮箱项
      if (/^[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/.test(this.data.userMail)) {
        console.log('校验成功')
        this.setData({
          mailisTrue: true
        })
      } else {
        console.log('校验失败')
        this.setData({
          mailisTrue: false
        })
      }
    }
  },
  submit(e) { //提交按钮

    let that = this

    // console.log(this.data.userName);


    if (/^[\u4E00-\u9FA5A-Za-z0-9]{2,20}/.test(this.data.userName)) { //点击瞬间也要进行校验
      console.log('校验成功')
      this.setData({
        nameIsTrue: true
      })
    } else {
      console.log('校验失败')
      this.setData({
        nameIsTrue: false
      })
    }
    if (/^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\d{8}$/.test(this.data.userPhone)) {
      // console.log('校验成功')
      this.setData({
        phoneIsTrue: true
      })
    } else {
      // console.log('校验失败')
      this.setData({
        phoneIsTrue: false
      })
    }
    if (/^[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/.test(this.data.userMail)) {
      console.log('校验成功')
      this.setData({
        mailisTrue: true
      })
    } else {
      console.log('校验失败')
      this.setData({
        mailisTrue: false
      })
    }




    if (this.data.nameIsTrue && this.data.phoneIsTrue && this.data.mailisTrue) {
      console.log('可以提交')
      // console.log(JSON.stringify({
      //   userName: that.data.userName,
      //   sexItem: that.data.nowSexValue,
      //   userPhone: that.data.userPhone,
      //   userMail: that.data.userMail,
      //   openId: wx.getStorageSync('openId')
      // }))
      wx.request({
        url: 'http://192.168.2.106:8080/updateuser.do',
        data: {
          openId: wx.getStorageSync('openId'),
          userName: that.data.userName,
          phone: that.data.userPhone,
          email: that.data.userMail,
          gender: that.data.nowSexValue
        },
        method: 'POST',
        dataType: 'json',
        header: {
          'content-type': 'application/json;charset=utf-8' // 默认值
        },
        success(res) {
          console.log(res, '请求成功')
        },
        fail(res) {
          console.log(res, '请求错误')
        }
      })

    } else {
      console.log('提交失败')
    }

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    let that = this


    wx.request({ //输出信息到修改页面
      url: 'http://192.168.2.106:8080/loaduser.do',
      data: {
        openId: wx.getStorageSync('openId'),
      },
      method: 'GET',
      dataType: 'json',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success(res) {
        console.log(res.data, '请求成功')
        // console.log(JSON.parse(res.data))
        // let getData = JSON.parse(res.data)
        that.setData({ //设定初始值
          userName: res.data.userName,
          userPhone: res.data.phone,
          userMail: res.data.email,
          nowSexValue: res.data.gender
        })
      },
      fail(res) {
        console.log(res, '请求错误')
      }
    })



    // this.wLogin()
    // let that = this
    // wx.getStorage({ //如果本地有openid则显示头像
    //   key: 'openId',
    //   success: function(res) {
    //     // console.log(res)
    //     if (res.data != "" || res.data) {
    //       wx.getUserInfo({
    //         success: function(re) {
    //           // console.log(re)
    //           that.setData({
    //             userName: re.userInfo.nickName,
    //             userImg: re.userInfo.avatarUrl
    //           })
    //         }
    //       })
    //     }
    //   },
    // })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})